Field of Invention
The present invention relates generally to the field of storage devices. More specifically, the present invention is related to a system and method for abstracting SATA and/or SAS storage media devices via a full duplex queued command interface to increase performance, lower host overhead, and simplify scaling storage media devices and systems.
Discussion of Related Art
The present state of the art for directly interfacing to a storage media device (rotational hard drive, solid state drive, ram drive, etc.) is to use interface protocols such as SATA (Serial ATA, where ATA=Advanced Technology Attachment) or SAS (Serial Attached SCSI). Both of these interfaces are rooted in much older parallel interfaces (PATA and SCSI). The general protocols remain unchanged from the original parallel specifications, they are simply now transported via serial interface rather than shared access bidirectional parallel busses. In the case of SATA, this limits the high-speed full duplex serial link to effectively half duplex as full command queuing and out of order responses are not natively supported. While Native Command Queuing (NCQ) is supported by a subset of SATA storage media devices, it only addresses some data transfers, not all commands and typically does not support interleaving read and write commands. SAS supports Tagged Command Queuing (TCQ) to overcome some of these limitations with SATA. The host must support and manage both protocols when accessing a mixture of devices (some SATA, some SAS). The host software layers interfacing to SATA or SAS must support their high protocol overhead.
SATA may have a Port Multiplier and SAS may have a Port Expander. Each of these devices split an exiting SATA or SAS link, respectively, into additional ports. Either SATA or SAS protocol is the path into these devices from the host, thus the host still must deal with SATA or SAS. In addition, this link bandwidth between the Multiplier/Expander and the host is shared across the storage media devices downstream. SATA Port Multipliers are typically used to increase storage capacity, subdividing the bandwidth between the controller and the Port Multiplier. SATA Port Multipliers cannot be cascaded, limiting the amount of increased storage capacity. Furthermore, not all SATA controllers support Port Multipliers. SAS Port Expanders may also be used to increase storage capacity, however, also allow several SAS links to the host to be grouped together (ganged) as one port to increase bandwidth between the controller and the Port Multiplier as well. It is possible for a SAS interface to carry SATA via SAS-STP (SAS SATA-Transport-Protocol).
In prior art, as depicted in FIG. 1, the host computer or processing element 100 supports SATA and/or SAS as a means to communicate with SATA storage media devices (SATA SMD) 106 & 110 and SAS storage media devices (SAS SMD) 108, respectively. The physical interface to the SMDs is made via a SATA controller 102 or SAS controllers 104 and 105, each communicating with SMDs via a serial interface. A SAS controller is able to interface with a SAS SMD (e.g., SAS controller 104 interfacing with SAS SMD 108) as well as a SATA SMD (e.g., SAS controller 105 interfacing with SATA SMD 110), where SATA SMD is supported by the SAS-STP (SAS SATA-Transport-Protocol). A SATA controller is able to interface only to a SATA SMD (i.e., SATA controller 102 is able to interface only to SATA SMD devices like SATA SMD 106).
Optionally, as shown in FIG. 2, a SATA controller 202 may interface to a port multiplier 204 to connect to one or more SATA SMDs. Likewise, a SAS controller 206 may interface to a port expander 208 to connect to one or more SAS SMDs or SATA SMDs.
However, prior art systems such as the ones described above do not provide a system and method for abstracting SATA and/or SAS storage media devices via a full duplex queued command interface to increase performance, lower host overhead, and simplify scaling storage media devices and systems. Embodiments of the present invention are an improvement over prior art systems and methods.